home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacWorld 1999 July
/
Macworld (1999-07).dmg
/
Shareware World
/
Info
/
For Developers
/
H2C 1.1
/
H2C SDK
/
Header
/
H2CCallback.h
next >
Wrap
Text File
|
1999-05-06
|
4KB
|
110 lines
// =================================================================================
// H2CCallback.h © 1998-99 Antoine Beyeler
// =================================================================================
#pragma once
#include <MixedMode.h>
#pragma options align=mac68k
typedef struct {
UniversalProcPtr h2cCallbackWriteText;
UniversalProcPtr h2cCallbackWritePString;
UniversalProcPtr h2cCallbackWriteCString;
UniversalProcPtr h2cCallbackWriteChar;
UniversalProcPtr h2cCallbackGetMarker;
UniversalProcPtr h2cCallbackSetMarker;
UniversalProcPtr h2cCallbackGetEOF;
UniversalProcPtr h2cCallbackSetEOF;
} H2CCallbackT, *H2CCallbackPtrT;
enum {
uppWriteTextProcInfo = kPascalStackBased
| RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
| STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (void*)))
| STACK_ROUTINE_PARAMETER (2, SIZE_CODE (sizeof (long))),
uppWritePStringProcInfo = kPascalStackBased
| RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
| STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (StringPtr))),
uppWriteCStringProcInfo = kPascalStackBased
| RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
| STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (char*))),
uppWriteCharProcInfo = kPascalStackBased
| RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
| STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (unsigned char))),
uppGetMarkerProcInfo = kPascalStackBased
| RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
| STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (long*))),
uppSetMarkerProcInfo = kPascalStackBased
| RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
| STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (long))),
uppGetEOFProcInfo = kPascalStackBased
| RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
| STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (long*))),
uppSetEOFProcInfo = kPascalStackBased
| RESULT_SIZE (SIZE_CODE (sizeof (OSErr)))
| STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (long)))
};
inline OSErr
CallWriteTextProc (H2CCallbackPtrT callback, const void* text, const long len)
{
return CALL_TWO_PARAMETER_UPP (callback->h2cCallbackWriteText, uppWriteTextProcInfo, text, len);
}
inline OSErr
CallWritePStringProc (H2CCallbackPtrT callback, const Str255 str)
{
return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackWritePString, uppWritePStringProcInfo, str);
}
inline OSErr
CallWriteCStringProc (H2CCallbackPtrT callback, const char* str)
{
return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackWriteCString, uppWriteCStringProcInfo, str);
}
inline OSErr
CallWriteCharProc (H2CCallbackPtrT callback, const char c)
{
return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackWriteChar, uppWriteCharProcInfo, c);
}
inline OSErr
CallGetMarkerProc (H2CCallbackPtrT callback, const long* pos)
{
return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackGetMarker, uppGetMarkerProcInfo, pos);
}
inline OSErr
CallSetMarkerProc (H2CCallbackPtrT callback, const long pos)
{
return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackSetMarker, uppSetMarkerProcInfo, pos);
}
inline OSErr
CallGetEOFProc (H2CCallbackPtrT callback, const long* sz)
{
return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackGetEOF, uppGetEOFProcInfo, sz);
}
inline OSErr
CallSetEOFProc (H2CCallbackPtrT callback, const long sz)
{
return CALL_ONE_PARAMETER_UPP (callback->h2cCallbackSetEOF, uppSetEOFProcInfo, sz);
}
#define WriteText_(text, len) CallWriteTextProc (callback, text, len)
#define WritePString_(str) CallWritePStringProc (callback, str)
#define WriteCString_(str) CallWriteCStringProc (callback, str)
#define WriteChar_(c) CallWriteCharProc (callback, c)
#define GetMarker_(pos) CallGetMarkerProc (callback, pos)
#define SetMarker_(pos) CallSetMarkerProc (callback, pos)
#define GetEOF_(sz) CallGetEOFProc (callback, sz)
#define SetEOF_(sz) CallSetEOFProc (callback, sz)
#pragma options align=reset